Add pending extension indicator to extension panel#5493
Merged
DOsinga merged 1 commit intoblock:mainfrom Nov 6, 2025
Merged
Conversation
ea8305e to
a90eda7
Compare
Add a marker to added extensions that have been installed but are yet to be enabled in the session Signed-off-by: Alex Holder <alexeeyre@gmail.com>
a90eda7 to
8062d94
Compare
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds a "Pending" status indicator to extensions that are enabled in the configuration but not yet activated in the current session. The feature helps users understand that certain extensions will only become active when they start a new chat session.
- Adds
pendingActivationExtensionsstate management to track extensions awaiting activation - Displays a visual "Pending" badge on extension items that are in pending state
- Clears pending state when extensions are toggled or successfully activated
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| ExtensionList.tsx | Accepts and passes pendingActivationExtensions prop to child components |
| ExtensionItem.tsx | Renders the "Pending" badge when isPendingActivation is true |
| ExtensionsSection.tsx | Manages pendingActivationExtensions state, marks extensions as pending on deep link or activation failure, and clears pending state on successful activation/toggle |
Comments suppressed due to low confidence (2)
ui/desktop/src/components/settings/extensions/ExtensionsSection.tsx:195
- The
handleUpdateExtensionfunction lacks pending activation state management. When an extension update fails (similar tohandleAddExtension), it should mark the extension as pending ifformData.enabledis true. Additionally, on successful update, it should clear the pending state for that extension.
const handleUpdateExtension = async (formData: ExtensionFormData) => {
if (!selectedExtension) {
console.error('No selected extension for update');
return;
}
// Close the modal immediately
handleModalClose();
const extensionConfig = createExtensionConfig(formData);
const originalName = selectedExtension.name;
try {
await updateExtension({
enabled: formData.enabled,
extensionConfig: extensionConfig,
addToConfig: addExtension,
removeFromConfig: removeExtension,
originalName: originalName,
sessionId: sessionId,
});
} catch (error) {
console.error('Failed to update extension:', error);
// We don't reopen the modal on failure
} finally {
// Refresh the extensions list regardless of success or failure
await fetchExtensions();
}
};
ui/desktop/src/components/settings/extensions/ExtensionsSection.tsx:210
- The
handleDeleteExtensionfunction should remove the deleted extension from thependingActivationExtensionsset to clean up state. Add logic to callsetPendingActivationExtensionsand delete the extension name from the set after a successful deletion.
const handleDeleteExtension = async (name: string) => {
// Close the modal immediately
handleModalClose();
try {
await deleteExtension({ name, removeFromConfig: removeExtension, sessionId: sessionId });
} catch (error) {
console.error('Failed to delete extension:', error);
// We don't reopen the modal on failure
} finally {
// Refresh the extensions list regardless of success or failure
await fetchExtensions();
}
};
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
DOsinga
approved these changes
Nov 6, 2025
michaelneale
added a commit
that referenced
this pull request
Nov 6, 2025
* main: (41 commits) Add pending extension indicator to extension panel (#5493) Add environment subsition for auth blocks (#5439) acp: ToolCallLocations and working cancellation (#5588) feat(providers): add Mistral AI provider (#5009) Listen for ctrl-c during provider request (#5585) Also accept null as description, not just missing (#5589) Document missing recipe param types (#5584) docs: description required for "Add Extension" in cli (#5573) fix: Add schema-aware numeric coercion for MCP tool arguments (#5478) Add uv for uvx in Justfile (#5581) Keep llm logs in place (#5577) bump to 1.12.0 (#5580) automate more of the release process (#5409) add clippy warning for string_slice (#5422) improve linux tray icon support (#5425) feat: log rotation (#5561) use app.isPackaged instead of checking for node env development (#5465) disable RPM build-ID generation to prevent package conflicts (#5563) Add Diagnostics Info to Q&A and Bug Report Templates (#5565) fix: improve server error messages to include HTTP status code (#5532) ...
lifeizhou-ap
added a commit
that referenced
this pull request
Nov 6, 2025
* main: fix: customised recipe to yaml string to avoid minininjia parsing error (#5494) Add pending extension indicator to extension panel (#5493) Add environment subsition for auth blocks (#5439) acp: ToolCallLocations and working cancellation (#5588) feat(providers): add Mistral AI provider (#5009) Listen for ctrl-c during provider request (#5585) Also accept null as description, not just missing (#5589) Document missing recipe param types (#5584) docs: description required for "Add Extension" in cli (#5573) fix: Add schema-aware numeric coercion for MCP tool arguments (#5478) Add uv for uvx in Justfile (#5581) Keep llm logs in place (#5577) bump to 1.12.0 (#5580) automate more of the release process (#5409)
aharvard
added a commit
that referenced
this pull request
Nov 6, 2025
* origin/main: (75 commits) fix: customised recipe to yaml string to avoid minininjia parsing error (#5494) Add pending extension indicator to extension panel (#5493) Add environment subsition for auth blocks (#5439) acp: ToolCallLocations and working cancellation (#5588) feat(providers): add Mistral AI provider (#5009) Listen for ctrl-c during provider request (#5585) Also accept null as description, not just missing (#5589) Document missing recipe param types (#5584) docs: description required for "Add Extension" in cli (#5573) fix: Add schema-aware numeric coercion for MCP tool arguments (#5478) Add uv for uvx in Justfile (#5581) Keep llm logs in place (#5577) bump to 1.12.0 (#5580) automate more of the release process (#5409) add clippy warning for string_slice (#5422) improve linux tray icon support (#5425) feat: log rotation (#5561) use app.isPackaged instead of checking for node env development (#5465) disable RPM build-ID generation to prevent package conflicts (#5563) Add Diagnostics Info to Q&A and Bug Report Templates (#5565) ...
wpfleger96
added a commit
that referenced
this pull request
Nov 6, 2025
* main: (60 commits) fix: add standard context menu items to prevent empty right-click menu (#5616) Bump openapi in prepare-release (#5611) docs: add access control section to Developer tutorial (#5615) Token state not showing on load, or after message is finished. (#5606) Change the other location too (#5608) feat(ui): bring back quick launcher (#5144) Support platform tools through CLI (#5570) Avoid web double write (#5601) fix: gemini flash -> pro for mcp smoke tests (#5574) Manual compaction test and fix (#5568) fix: tidy up claude cli handling (#5594) Remove jetbrains (#5602) feat(githubcopilot): add support for newer Copilot AI Models (#5603) fix: customised recipe to yaml string to avoid minininjia parsing error (#5494) Add pending extension indicator to extension panel (#5493) Add environment subsition for auth blocks (#5439) acp: ToolCallLocations and working cancellation (#5588) feat(providers): add Mistral AI provider (#5009) Listen for ctrl-c during provider request (#5585) Also accept null as description, not just missing (#5589) ...
wpfleger96
added a commit
that referenced
this pull request
Nov 6, 2025
* main: (31 commits) Standardize CLI argument flags and update documentation (#5516) Release 1.13.0 fix: move goosehints/AGENTS.md handling to goose, and out of developer extension (#5575) fix: add standard context menu items to prevent empty right-click menu (#5616) Bump openapi in prepare-release (#5611) docs: add access control section to Developer tutorial (#5615) Token state not showing on load, or after message is finished. (#5606) Change the other location too (#5608) feat(ui): bring back quick launcher (#5144) Support platform tools through CLI (#5570) Avoid web double write (#5601) fix: gemini flash -> pro for mcp smoke tests (#5574) Manual compaction test and fix (#5568) fix: tidy up claude cli handling (#5594) Remove jetbrains (#5602) feat(githubcopilot): add support for newer Copilot AI Models (#5603) fix: customised recipe to yaml string to avoid minininjia parsing error (#5494) Add pending extension indicator to extension panel (#5493) Add environment subsition for auth blocks (#5439) acp: ToolCallLocations and working cancellation (#5588) ...
michaelneale
added a commit
that referenced
this pull request
Nov 7, 2025
* main: (21 commits) differentiate debug/release in cache key (#5613) Unify subrecipe and subagent execution through shared recipe pipeline (#5082) Standardize CLI argument flags and update documentation (#5516) Release 1.13.0 fix: move goosehints/AGENTS.md handling to goose, and out of developer extension (#5575) fix: add standard context menu items to prevent empty right-click menu (#5616) Bump openapi in prepare-release (#5611) docs: add access control section to Developer tutorial (#5615) Token state not showing on load, or after message is finished. (#5606) Change the other location too (#5608) feat(ui): bring back quick launcher (#5144) Support platform tools through CLI (#5570) Avoid web double write (#5601) fix: gemini flash -> pro for mcp smoke tests (#5574) Manual compaction test and fix (#5568) fix: tidy up claude cli handling (#5594) Remove jetbrains (#5602) feat(githubcopilot): add support for newer Copilot AI Models (#5603) fix: customised recipe to yaml string to avoid minininjia parsing error (#5494) Add pending extension indicator to extension panel (#5493) ...
fbalicchia
pushed a commit
to fbalicchia/goose
that referenced
this pull request
Nov 7, 2025
Signed-off-by: Alex Holder <alexeeyre@gmail.com> Signed-off-by: fbalicchia <fbalicchia@gmail.com>
Surendhar-N-D
pushed a commit
to Surendhar-N-D/goose
that referenced
this pull request
Nov 17, 2025
Signed-off-by: Alex Holder <alexeeyre@gmail.com>
arul-cc
pushed a commit
to arul-cc/goose
that referenced
this pull request
Nov 17, 2025
Signed-off-by: Alex Holder <alexeeyre@gmail.com>
BlairAllan
pushed a commit
to BlairAllan/goose
that referenced
this pull request
Nov 29, 2025
Signed-off-by: Alex Holder <alexeeyre@gmail.com> Signed-off-by: Blair Allan <Blairallan@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a marker to added extensions that have been installed but are yet to be enabled in the session.
Type of Change
Testing
Manually tested by adding an extension from the goose extension library via the deeplink.
Related Issues
Relates to #5473
Screenshots/Demos (for UX changes)
Before:

After:
